const fs = require('fs');
const path = require('path');

// 配置项
const config = {
  // 要处理的文件夹路径
  sourcePath: './imgchange',
  // 新文件名的前缀
  prefix: 'icon',
  // 新文件的扩展名
  newExtension: 'png',
  // 是否保留原文件
  keepOriginal: false
};

// 支持的图片格式
const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp'];

// 主函数
function renameImages() {
  try {
    // 确保源文件夹存在
    if (!fs.existsSync(config.sourcePath)) {
      console.error(`错误: 文件夹 "${config.sourcePath}" 不存在`);
      return;
    }

    // 读取文件夹中的所有文件
    const files = fs.readdirSync(config.sourcePath);
    
    // 过滤出图片文件
    const imageFiles = files.filter(file => {
      const ext = path.extname(file).toLowerCase();
      return imageExtensions.includes(ext);
    });

    if (imageFiles.length === 0) {
      console.log('没有找到图片文件');
      return;
    }

    // 重命名文件
    imageFiles.forEach((file, index) => {
      const oldPath = path.join(config.sourcePath, file);
      const newFileName = `${config.prefix}${index}.${config.newExtension}`;
      const newPath = path.join(config.sourcePath, newFileName);

      try {
        if (config.keepOriginal) {
          // 复制并重命名
          fs.copyFileSync(oldPath, newPath);
          console.log(`复制并重命名: ${file} -> ${newFileName}`);
        } else {
          // 直接重命名
          fs.renameSync(oldPath, newPath);
          console.log(`重命名: ${file} -> ${newFileName}`);
        }
      } catch (err) {
        console.error(`处理文件 "${file}" 时出错:`, err.message);
      }
    });

    console.log(`\n完成! 共处理 ${imageFiles.length} 个文件`);

  } catch (err) {
    console.error('发生错误:', err.message);
  }
}

// 执行重命名
renameImages();
